/**
 * FlashReport报表综合实例(动态数据源|动态报表类型)
 */
Ext.onReady(function() {
			var rownum = new Ext.grid.RowNumberer({
						header : 'NO',
						width : 28
					});
			//定义三个参数变量，及时进行后台的查询！
			var curr_status="0",curr_prj_name="",curr_prj_sn="",curr_prj_no;
			// 定义列模型
			var cm = new Ext.grid.ColumnModel([rownum, {
				header : '项目流水号', // 列标题
				dataIndex : 'prj_sn', // 数据索引:和Store模型对应
				sortable : true,
				hidden:true
					// 是否可排序
				}, 
				
				{
					header:'项目编号',
					dataIndex:'prj_no',
					sortable:true
				},{
				header : '项目名称',
				dataIndex : 'prj_name',
				sortable : true
			},  {
				header : '承办单位',
				dataIndex : 'prj_ut'
			}, {
				header : '项目地块',
				dataIndex : 'prj_massif'
			}, {
				header : '项目背景',
				dataIndex : 'prj_bg',
				hidden:true
			}, {
				header : '项目状态',
				dataIndex : 'prj_status',
				renderer:function(value)
				{
					var message;
					if(value=='1')
					{
						message="策划";
					}
					else if(value=='2')
					{
						message="成熟";
					}
					else if(value=='3')
					{
						message="在建";
					}
					else 
					{
						message="竣工";
					}
					return message;
				}
			}]);

			
			/**
			 * 数据存储
			 */
			var store = new Ext.data.Store({
						// 获取数据的方式
						proxy : new Ext.data.HttpProxy({
									url : 'juesuanDemo.ered?reqCode=queryProjects'
								}),
						reader : new Ext.data.JsonReader({
									totalProperty : 'TOTALCOUNT', // 记录总数
									root : 'ROOT' // Json中的列表数据根节点
								}, [{
											name : 'prj_sn' // Json中的属性Key值
										}, {
											name:'prj_no'
										}, {
											name : 'prj_name'
										}, {
											name : 'prj_ut'
										}, {
											name : 'prj_massif'
										}, {
											name : 'prj_bg'
										}, {
											name : 'prj_status'
										}])
					});
			
		
			var pagesize_combo = new Ext.form.ComboBox({
				name : 'pagesize',
				triggerAction : 'all',
				mode : 'local',
				store : new Ext.data.ArrayStore({
							fields : ['value', 'text'],
							data : [[10, '10条/页'], [20, '20条/页'],
									[50, '50条/页'], [100, '100条/页'],
									[250, '250条/页'], [500, '500条/页']]
						}),
				valueField : 'value',
				displayField : 'text',
				value : '20',
				editable : false,
				width : 85
			});
	var number = parseInt(pagesize_combo.getValue());
	pagesize_combo.on("select", function(comboBox) 
			{
				bbar.pageSize = parseInt(comboBox.getValue());
				number = parseInt(comboBox.getValue());
				store.reload
				({
							params : 
							{
								start : 0,
								limit : bbar.pageSize
							}
						
				});
				//由于从新加载后此时还是有焦点了，因此只有第二次加载才会起效，因此这里用了一个技巧，传递一个参数强制无需判断是否有焦点强制刷新数据！
				queryYuSuanByPrjsn("foce");
			});
	// 分页工具栏
	var bbar = new Ext.PagingToolbar({
				pageSize : number,
				store : store,
				displayInfo : true,
				displayMsg : '显示{0}条到{1}条,共{2}条',
				plugins : new Ext.ux.ProgressBarPager(), // 分页进度条
				emptyMsg : "没有符合条件的记录",
				items : [ pagesize_combo
				]
			});

	
			var tbar = new Ext.Toolbar({
						items : [
								new Ext.form.ComboBox(
										{
											id : 'state',
											hiddenName : 'PRJ_STATUS',
											triggerAction : 'all',
											store : new Ext.data.SimpleStore({
														fields : ['value',
																'text'],
														data : [
														        ['','所有状态'],
														        ['1', '策划'],
																 ['2', '成熟'],
																 ['3', '在建'],
																 ['4', '竣工']
														        ]
													}),
											displayField : 'text',
											valueField : 'value',
											mode : 'local',
											forceSelection : true,
											typeAhead : true,
											emptyText:'请选择状态',
											editable : false,
											resizable : true,
											width : 110
										},
										'<span class="commoncss">项目:</span>'),'<span class="commoncss">项目名称:</span>',
										new Ext.form.TextField({
											id : 'prj_name',
											name : 'prj_name',
											maxLength : 10,
											emptyText : '请输入阶段名称',
											//允许控件触发键盘事件，其实就是方便可以提交，直接按回车也可以提交！
											enableKeyEvents : true,
											//键盘事件的回调方法！
											listeners : {
												specialkey : function(field, e) {
													if (e.getKey() == Ext.EventObject.ENTER) 
													{
														//如果触发的是回车就直接提交！
														queryMenuItem();
													}
												}
											},
											width : 110
										}),
										'<span class="commoncss">项目编号:</span>',
										new Ext.form.TextField
										({
											id : 'prj_sn',
											name : 'prj_sn',
											emptyText : '请输入项目编号',
											maxLength : 10,
											//允许控件触发键盘事件，其实就是方便可以提交，直接按回车也可以提交！
											enableKeyEvents : true,
											//键盘事件的回调方法！
											listeners : 
											{
												specialkey : function(field, e) 
												{
													if (e.getKey() == Ext.EventObject.ENTER) 
													{
														//如果触发的是回车就直接提交！
														queryMenuItem();
													}
												}
											},
											width : 100
										}),{
											text : '刷新',
											iconCls : 'arrow_refreshIcon',
											handler : function() {
											//从新查询数据！这个方法包装了store的load方法！
											queryMenuItem();
											}
								}
								]
					});

			//以下定义了触发插叙的切入点！
			Ext.getCmp('state').on('select', function(obj) 
					{
						//一旦修改了下拉列表的值就触发查询
						queryMenuItem();		
					});
			Ext.getCmp('prj_sn').on("keyup",function()
					{
				//一旦发生脱离焦点事件就触发查询
							queryMenuItem(); 
					});
			Ext.getCmp('prj_name').on("keyup",function()
					{
				//一旦发生脱离焦点事件就触发查询
							queryMenuItem(); 
					});
			
			var grid = new Ext.grid.GridPanel({
						title : '<span style="font-weight:normal">项目基本信息</span>',
						frame : true,
						width : 600,
						//设置它的最大宽度，当再次向拉大时不再有效果！
						maxSize : 550,
						autoScroll : true,
						region : 'west',
						split : true,
						collapsible : true,
						store : store,
						stripeRows : true,
						cm : cm,
						tbar : tbar,
						bbar : bbar,
						viewConfig : {
							//强行填充！
							forceFit : true
						},
						loadMask : {
							msg : '正在加载表格数据,请稍等...'
						}
					});
			//这个表格的内容选中事件将会触及另一个表单的查询事件！
			grid.on("rowclick",function()
			{
				var record = grid.getSelectionModel().getSelected();
				//alert("一条记录被选中");
				//及时修改为当前项目编号
				curr_prj_sn=record.data.prj_sn;
				curr_prj_no=record.data.prj_no;
				//alert(curr_prj_no);
				//一旦项目信息记录被点击了就立刻就刷新当前项目下的预算信息！
				queryYuSuanByPrjsn() ;
				//一旦能够激发行点击事件，说明肯定有项目，此时设置表格的按钮可用
				Ext.getCmp('delete').enable();
				Ext.getCmp('update').enable();
				Ext.getCmp('add').enable();
				Ext.getCmp('refreshs').enable();
				//加载一次数据！
				remoteStore.load();
			});
		

			store.load({
				params : 
				{
					start : 0,
					limit : bbar.pageSize
				}
			});

			
			//开始定义第二个面板，这个面板中包含了预算信息！
			
			
			
			
			
			//定义一个方法调用标识！
			var moder='save';
			//定义一个最初的标题！
			var oldTitle='<span style="font-weight:normal;">项目编号为：'+curr_prj_no+'的收支信息表</span>';
			
			
			
			var sm1 = new Ext.grid.CheckboxSelectionModel();
			var cm1 = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm1, 
				                       	        {
				                       				header : '决算编号',
				                       				dataIndex : 'final_sn',
				                       				width : 200
				                       			},
				                       			{
				                       				header : '项目流水号',
				                       				dataIndex : 'prj_sn',
				                       				sortable : true,
				                       				width : 130,
				                       				hidden:true
				                       			},
				                       			{
				                       				header:'费用类型编号',
				                       				dataIndex:'final_cost_tp',
				                       				width : 130,
				                       				hidden:true
				                       			},
				                       	         {
				                       				header : '费用类型',
				                       				dataIndex : 'tp_name',
				                       				sortable : true,
				                       				//hidden:true,
				                       				width : 130
				                       			},
				                       			 {
				                       				header : '决算金额',
				                       				dataIndex : 'final_money',
				                       				sortable : true,
				                       				renderer:function(value)
				                       				{
				                       					if(value==null||value==' '||value=='')
				                       					{
				                       						return "<span style='color:red;'>提示：当前没有金额。。。</span>";
				                       					}
				                       					else
				                       					{
				                       						return "<span style='color:red;'>"+value+"元</span>";
				                       					}
				                       				},
				                       				width : 200
				                       			}, {
				                       				header : '备注',
				                       				dataIndex : 'final_mark',
				                       			//这个属性的值就是一个方法， 我们可以在展示数据的同时修饰数据！
				                       				renderer:function(value)
				                       				{
				                       					if(value==null||value==' '||value=='')
				                       					{
				                       						return "<span style='color:red;'>提示：当前没有备注。。。</span>";
				                       					}
				                       					else
				                       					{
				                       						return value;
				                       					}
				                       				},
				                       				width : 50
				                       			}, {
				                       				header : '决算时间',
				                       				dataIndex : 'final_date',
				                       				sortable : true,
				                       				width : 130
				                       			}]);
				/**
				 * 数据存储
				 */
				var store1 = new Ext.data.Store({
					proxy : new Ext.data.HttpProxy({
								url : './juesuanDemo.ered?reqCode=queryJueSuanByPrjsn'
							}),
					reader : new Ext.data.JsonReader({
								totalProperty : 'TOTALCOUNT',
								root : 'ROOT'
							}, [{
										name : 'final_sn'
									}, {
										name : 'prj_sn'
									}, 
									{
										name :'final_cost_tp'
									}
									,{
										name : 'tp_name'
									}
									,{
										name : 'final_money'
									}, {
										name : 'final_mark'
									}, {
										name : 'final_date'
									}])
				});



			

			var pagesize_combo1 = new Ext.form.ComboBox({
						name : 'pagesize',
						triggerAction : 'all',
						mode : 'local',
						store : new Ext.data.ArrayStore({
									fields : ['value', 'text'],
									data : [[10, '10条/页'], [20, '20条/页'],
											[50, '50条/页'], [100, '100条/页'],
											[250, '250条/页'], [500, '500条/页']]
								}),
						valueField : 'value',
						displayField : 'text',
						value : '20',
						editable : false,
						width : 85
					});
			var number1 = parseInt(pagesize_combo1.getValue());
			pagesize_combo1.on("select", function(comboBox) 
					{
						bbar1.pageSize = parseInt(comboBox.getValue());
						number1 = parseInt(comboBox.getValue());
						store1.reload
						({
									params : 
									{
										start : 0,
										limit : bbar1.pageSize
									}
						});
						//从新查询数据！这个方法包装了store的load方法！
						queryYuSuanByPrjsn();
					});

			
			// 分页工具栏
			var bbar1 = new Ext.PagingToolbar({
						pageSize : number1,
						store : store1,
						displayInfo : true,
						displayMsg : '显示{0}条到{1}条,共{2}条',
						plugins : new Ext.ux.ProgressBarPager(), // 分页进度条
						emptyMsg : "没有符合条件的记录",
						items : ['-', '&nbsp;&nbsp;', pagesize_combo1, '-'
						]
					});

			
			var grid1 = new Ext.grid.GridPanel({
						id :'yusuanbiaoge',
						title : '<span style="font-weight:normal;">项目决算信息表</span>',
						autoScroll : true,
						frame : true,
						region : 'center',
						store : store1,
						stripeRows : true, // 斑马线
						cm : cm1,
						sm : sm1,
						bbar : bbar1,
						loadMask : 
						{
							msg : '正在加载表格数据,请稍等...'
						},
						viewConfig : {
							// 不产横向生滚动条, 各列自动扩展自动压缩, 适用于列数比较少的情况
										 forceFit : true
										},
						tbar : [{
									text : '新增决算',
									id:'add',
									iconCls : 'page_addIcon',
									disabled : true,
									handler : function() {
										moder='save';
										addInit();
									}
								}, '-', {
									text : '修改决算',
									disabled : true,
									iconCls : 'page_edit_1Icon',
									id:'update',
									handler : function() 
									{
										moder='update';
										editInit();
									}
								}, '-', {
									text : '删除决算',
									id:'delete',
									iconCls : 'page_delIcon',
									disabled : true,
									handler : function() 
									{
										deleteFJ();
									}
								}, '->',{
									text : '刷新',
									id:"refreshs",
									disabled:true,
									iconCls : 'arrow_refreshIcon',
									handler : function() {
										//刷新时也是没有焦点因此不允许操作！
										Ext.getCmp('delete').disable();
										Ext.getCmp('update').disable();
										//从新查询数据！这个方法包装了store的load方法！
										queryYuSuanByPrjsn();
									}
								}]
					});

			// 翻页排序时带上查询条件，这里主要定义了每次查询必须要提交的条件参数！
			store1.on('beforeload', function() 
					{
						//每次查询之前把当前被选中的项目的编号传递过去！
						var record = grid1.getSelectionModel().getSelected();
						//判断是否有记录被选中！
						if(Ext.isEmpty(record))
						{
							this.baseParams = 
							{
								PRJ_SN:"none"
							};
						}
						else
						{
							this.baseParams = 
							{
								PRJ_SN:record.data.prj_sn
							};
						}
					});
			// 监听行选中事件
			grid1.on('rowclick', function(pGrid, rowIndex, event) 
					{
						//单击行事件将导致更新和删除按钮可用！
						Ext.getCmp('delete').enable();
						Ext.getCmp('update').enable();
					});
			//双击表格中的记录代表的就是要修改附件的信息！
			grid1.on('rowdblclick', function(grid, rowIndex, event) 
					{
						editInit();
						moder='update';
					});
			

			var viewport = new Ext.Viewport
			({
						layout : 'border',
						items : [grid,grid1]
			});

			
			/**
			 * 根据条件查询菜单，供第一个表格使用！
			 */
			function queryMenuItem() 
			{
				curr_status=Ext.getCmp('state').getValue();
				curr_prj_sn=Ext.getCmp('prj_sn').getValue();
				curr_prj_name=Ext.getCmp('prj_name').getValue();
				if(curr_prj_sn.length>12)
				{
					Ext.Msg.alert('提示', "编号不能超过12位");
					return;
				}
				if(curr_prj_name.length>50)
				{
					Ext.Msg.alert('提示', "项目名称不能操作50");
					return;
				}
				//alert("状态："+curr_status+"--名称："+curr_prj_name+"--编号："+curr_prj_sn);
				store.load
				({
							params :
							{
								start : 0,
								limit : bbar.pageSize,
								//将参数传递过去
								PRJ_STATUS:curr_status,
								PRJ_NO:curr_prj_sn,
								PRJ_NAME:curr_prj_name
							}
				});
				//由于左右俩边的数据是对应的，因此当左边数据发生变化是及时更新右边的数据！
				queryYuSuanByPrjsn("foce");
			}
			
			/**
			 * 根据条件查询菜单
			 */
			function queryYuSuanByPrjsn(v) 
			{
				//代表强制刷新数据，根本不去判断是否获得了焦点！
				if(v=="foce")
				{
					Ext.getCmp('yusuanbiaoge').setTitle('<span style="font-weight:normal;">项目决算信息表</span>');
					//由于此时强制刷新的数据，默认加载所有项目的预算信息，而没有项目编号，因此要将新增，删除，修改按钮设置成为不可以用！
					Ext.getCmp('delete').disable();
					Ext.getCmp('update').disable();
					Ext.getCmp('add').disable();
					Ext.getCmp('refreshs').disable();
					//如果没有选中则默认加载全部数据
					store1.load
					({
						params : 
						{
							start : 0,
							limit : bbar.pageSize,
							//由于只加载对应项目下的，因此要传递一个错误的不存的项目编号！
							PRJ_SN:"none"
						}
					});
					return;
				}
				//得到第一个表格当前被选中的记录！
				var record = grid.getSelectionModel().getSelected();
				//判断是否有记录被选中！
				if(Ext.isEmpty(record))
				{
					//alert("请选中记录再进行预算查询！");
					Ext.getCmp('yusuanbiaoge').setTitle('<span style="font-weight:normal;">项目决算信息表</span>');
					//如果没有选中则默认加载全部数据
					store1.load
					({
						params : 
						{
							start : 0,
							limit : bbar.pageSize,
							PRJ_SN:""
						}
					});
				}
				else
				{
					Ext.getCmp('yusuanbiaoge').setTitle('<span style="font-weight:normal;">项目编号为：<span style="color:red;">'+curr_prj_no+'</span>的决算信息表</span>');
					store1.load
					({
						params : 
						{
							start : 0,
							limit : bbar.pageSize,
							PRJ_SN:record.data.prj_sn
						}
					});
				}	
			}
			//定义第二个表格所使用到的函数
			
			//定义一个远程数据源
			var remoteStore=new Ext.data.Store({
				// 获取数据的方式
				proxy : new Ext.data.HttpProxy({
							url : 'juesuanDemo.ered?reqCode=queryMoneyType'
						}),
				// 数据读取器
				reader : new Ext.data.JsonReader({
							totalProperty : 'TOTALCOUNT', // 记录总数
							root : 'ROOT' // Json中的列表数据根节点
						}, [	
						    	{
									name : 'tp_name'
								}, {
									name : 'tp_cd'
								}
							])
			});
			//给远程数据源添加事件，每次加载时赋予参数，指在显示添加窗口时才加载
			remoteStore.on('beforeload', function() 
					{
						//每次查询之前把当前被选中的项目的编号传递过去！
						var record = grid.getSelectionModel().getSelected();
						//判断是否有记录被选中！
						if(Ext.isEmpty(record))
						{
							this.baseParams = 
							{
									prj_sn:"none"
							};
						}
						else
						{
							//alert("项目编号是："+record.data.prj_sn);
							this.baseParams = 
							{
									prj_sn:record.data.prj_sn
							};
						}
					});
			addFormPanel = new Ext.form.FormPanel({
				id : 'addMenuFormPanel',
				name : 'addMenuFormPanel',
				defaultType : 'textfield',
				labelAlign : 'right',
				labelWidth : 65,
				frame : false,
				bodyStyle : 'padding:5 5 0',
				items : [
						{
							fieldLabel : '决算金额',
							maxLength : 10,
							name:'final_money',
							xtype : 'numberfield', // 设置为数字输入框类型
							allowDecimals : true, // 是否允许输入小数
							allowNegative : false, // 是否允许输入负数
							allowBlank : false, // 是否允许为空
							anchor : '99%'
						},new Ext.form.ComboBox({
							id :'moneyTypes',
							hiddenName : 'tp_name',
							allowBlank : false, // 是否允许为空
							fieldLabel : '费用类型',
							triggerAction : 'all',
							emptyText : '没有值是代表不可再添加',
							store :remoteStore,
							displayField : 'tp_name',
							valueField : 'tp_cd',
							mode : 'local',
							forceSelection : true, // 选中内容必须为下拉列表的子项
							editable : false,
							typeAhead : true,
							resizable : true,
							anchor : '99%'
						}),
						{
							fieldLabel : '备注',
							name : 'final_mark',
							maxLength : 450,
							xtype:'textarea',
							
							allowBlank : true,
							anchor : '99%'
						},
						{
							xtype : 'datefield',
							fieldLabel : '决算时间', // 标签
							name : 'final_date', // name:后台根据此name属性取值
							format : 'Y-m-d', // 日期格式化
							value : new Date(),
							allowBlank : false, // 是否允许为空
							anchor : '99%' // 宽度百分比
						}]
			});
			
		addWindow = new Ext.Window({
				layout : 'fit',
				width : 420,
				height : 285,
				resizable : false,
				draggable : true,
				closeAction : 'hide',
				title : '<span class="commoncss">新增决算</span>',
				// iconCls : 'page_addIcon',
				modal : true,
				collapsible : true,
				titleCollapse : true,
				maximizable : false,
				buttonAlign : 'right',
				border : false,
				animCollapse : true,
				pageY : 20,
				pageX : document.body.clientWidth / 2 - 420 / 2,
				animateTarget : Ext.getBody(),
				constrain : true,
				items : [addFormPanel],
				buttons : [{
					text : '保存',
					iconCls : 'acceptIcon',
					handler : function() {
						if (runMode == '0') 
						{
							Ext.Msg.alert('提示','系统正处于演示模式下运行,您的操作被取消!该模式下只能进行查询操作!');
							return;
						}
						//alert(moder);
						//用于一个变量来标识到底调用哪个方法可以使代码复用！
						if(moder=='save')
						{
							saveYuSuanItem();
						}
						else if(moder=='update')
						{
							update();
						}
					}
				}, {
					text : '重置',
					id : 'btnReset',
					iconCls : 'tbar_synchronizeIcon',
					handler : function() 
					{
						addFormPanel.getForm().reset();
					}
				}, {
					text : '关闭',
					iconCls : 'deleteIcon',
					handler : function() {
						addFormPanel.getForm().reset();
						addWindow.hide();
					}
				}]
			});
		
		
			/**
			 * 保存预算
			 */
			function saveYuSuanItem() {
				//查看输入的数据是否有效
				if (!addFormPanel.form.isValid()) 
				{
					return;
				}
				addFormPanel.form.submit({
							url : './juesuanDemo.ered?reqCode=addJueSuan',
							waitTitle : '提示',
							method : 'POST',
							waitMsg : '正在处理数据,请稍候...',
							success : 
								function(form, action) 
								{
								Ext.MessageBox.alert('提示', action.result.msg);
								Ext.Msg.confirm('请确认', '新增成功,您要继续新的决算吗?', function(
										btn, text) {
									if (btn == 'yes') 
									{
										addFormPanel.getForm().reset();
										//当药再次添加时要从新加载下拉列表中的值！
										//加载一次数据！
										remoteStore.load();
										store1.reload();
										addWindow.show();
									} 
									else 
									{
										addFormPanel.getForm().reset();
										addWindow.hide();
										store1.reload();
									}
								}); 
							},
							failure : 
								function(form, action) 
							{
								var msg = action.result.msg;
								Ext.MessageBox.alert('提示', '菜单数据保存失败:<br>' + msg);
							},
							params : {
								final_cost_tp : Ext.getCmp('moneyTypes').getValue(),
								prj_sn:curr_prj_sn
							}
						});
			}


			

			/**
			 * 删除菜单
			 */
			function deleteFJ() {
				if (runMode == '0') {
					Ext.Msg.alert('提示', '系统正处于演示模式下运行,您的操作被取消!该模式下只能进行查询操作!');
					return;
				}
				var rows = grid1.getSelectionModel().getSelections();
				if (Ext.isEmpty(rows)) {
					Ext.Msg.alert('提示', '请先选中要删除决算记录!');
					return;
				}
				//将要删除的附件编号字符串传递过去！
				var strChecked = jsArray2JsString(rows, 'final_sn');
				Ext.Msg.confirm('请确认', '你真的要删除所有选中的文件吗?', function(btn, text) {
					if (btn == 'yes') {
						showWaitMsg();
						Ext.Ajax.request({
							url : 'juesuanDemo.ered?reqCode=deleteJueSuan',
							success : function(response) {
								var resultArray = Ext.util.JSON
										.decode(response.responseText);
								Ext.Msg.alert('提示', resultArray.msg);
								store1.reload();
							},
							failure : function(response) {
								Ext.Msg.alert('提示', "删除决算信息失败");
							},
							params : {
								strChecked : strChecked
							}
						});
					}
				});
			}

			
			/**
			 * 修改菜单初始化
			 */
			function editInit() {
				var record = grid1.getSelectionModel().getSelected();
				//得到多条被选中的记录
				var rows = grid1.getSelectionModel().getSelections();
				//查看是否记录得到焦点，如果没有被选中，那么就停止程序！
				if (Ext.isEmpty(record)) 
				{
					Ext.Msg.alert('提示:', '请先选中决算记录');
					return;
				}
				//当选中多条时不允许同时上传！
				if(rows.length>1)
				{
					Ext.Msg.alert('提示：','不能同时修改多条记录');
					return;
				}
				addFormPanel.getForm().loadRecord(record);
				//修改时下拉列表中的值是不能修改的，因此要设置成不可用状态！但别忘了在添加时又的将其修改成可用状态！
				Ext.getCmp('moneyTypes').disable();
				addWindow.show();
				addWindow.setTitle('<span style="font-weight:normal">修改项目编号为：'+curr_prj_no+'的决算信息</span>');
			}

			/**
			 * 新增菜单初始化
			 */
			function addInit() 
			{
				//加载一次数据！
				remoteStore.load();
				//修改下拉列表状态！
				Ext.getCmp('moneyTypes').enable();
				addWindow.show();
				addWindow.setTitle('<span style="font-weight:normal">项目编号为：'+curr_prj_no+'的决算信息</span>');
			}

			
			
			/**
			 * 更新
			 */
			function update() {
				if (!addFormPanel.form.isValid()) 
				{
					return;
				}
				if (runMode == '0') {
					Ext.Msg.alert('提示', '系统正处于演示模式下运行,您的操作被取消!该模式下只能进行查询操作!');
					return;
				}
				//得到当前被修改的记录！
				var record = grid1.getSelectionModel().getSelected();
				addFormPanel.form.submit({
							url : './juesuanDemo.ered?reqCode=updateJueSuan',
							waitTitle : '提示',
							method : 'POST',
							waitMsg : '正在处理数据,请稍候...',
							success : function(form, action) {
								store1.reload();
								Ext.MessageBox.alert('提示', action.result.msg);
								addFormPanel.getForm().reset();
								addWindow.hide();
							},
							failure : function(form, action) {
								var msg = action.result.msg;
								store1.reload();
								Ext.MessageBox.alert('提示', '数据修改失败:<br>' + msg);
								addFormPanel.getForm().reset();
							},
							params : {
								final_sn : record.data.final_sn
							}
						});
			}

		});